package dao

import (
	"fmt"
	"service/app/dto"
	"service/app/mode"
)

type ApmDao struct {
	BaseDao
}

var apmDao *ApmDao

func ApmDaoCreate() *ApmDao {
	if apmDao == nil {
		return &ApmDao{
			BaseDao: newBaseDao(),
		}
	}
	return apmDao
}

func (m *ApmDao) ApmAllD() (*[]mode.Db_apm, error) {
	var apmList []mode.Db_apm
	if err := m.Orm.Model(&mode.Db_apm{}).Find(&apmList).Error; err != nil {
		return nil, err
	}
	return &apmList, nil
}
func (m *ApmDao) ApmDelD(id *dto.ReqUriIdDto) error {
	return m.Orm.Delete(&mode.Db_apm{}, id.Id).Error
}

func (m *ApmDao) ApmEditD(id *dto.ReqUriIdDto, addTenant *dto.ApmEditDto) error {
	var apmDb mode.Db_apm
	if err := m.Orm.Model(&mode.Db_apm{}).Where("id = ?", id.Id).Find(&apmDb).Error; err != nil {
		return fmt.Errorf("未找到Id为:%v", id.Id)
	}
	addTenant.ConverApmDb(&apmDb)
	if err := m.Orm.Save(apmDb); err != nil {
		return err.Error
	}
	return nil
}

func (m *ApmDao) ApmAddD(addTenant *mode.Db_apm) error {
	return m.Orm.Save(addTenant).Error
}
